// let a = 'yes'
// let b = 'no'
// let c = Symbol('yes')
// let s = new Symbol('yes') //error
// console.log(c instanceof Symbol); //error
// const obj = {
//     toString() {
//         return 'abc'
//     }
// }
// //1.如果symbol调用的是对象，就会调用对象的tostring方法，将其转化为symbol类型
// const sym = Symbol(obj)
// console.log(sym);//Symbol(abc)
// 2.唯一
// let s1 = Symbol('foo')
// let s2 = Symbol('foo')
// console.log(s1 == s2);
//3.symbol->string
// let sym = Symbol('my sym')
// console.log(String(sym));
// console.log(sym.toString());
//4.Symbol 值不能与其它数据进行运算
// console.log('sym'+ sym);
//5.
// let mysym = Symbol()
// let obj = {
//     name:'sym1',
//     name:"sym2"

// }
// obj[mysym] = 'hello'
// obj[mysym] = 'world'
// console.log(obj);
//给对象添加属性
// let a = {
//     [mysym]:'hello'
// }
// let a = {}
// Object.defineProperty(a,mysym,{value:'hello'})
//获取对象所有属性(不包含symbol)
// console.log(Object.getOwnPropertyNames(obj));
//获取对象所有属性(只有symbol)
// console.log(Object.getOwnPropertySymbols(obj));
let s1 = Symbol.for('s1')
let s2 = Symbol('s2')
console.log(s1);
console.log(Symbol.keyFor(s1));